Vorwissen

Einsatz des Visitor Pattern  beim auswerten von Parsebäumen
Das hier durchgeführte Reverse Engineering bezieht sich auf eine Implementierung eines Parsers in JavaCC. Parser werden eingesetzt um Ausdrücke auf die Korrektheit ihrer Syntax zu Überprüfen. Der Parser ist in der Lage einen regulären Ausdruck zu Parsen. Dabei erstellt der Parser einen sogenannten Abstrakten Syntaxbaum. Die Knoten des Baumes sind mit einander Verwandt. Hier wird das Visitor Pattern eingesetzt um die Baumstruktur zu traversieren. Dabei wird überprüft ob die Interpretation eines Models zu einer wahren Aussage führt. Bei der Traversierung der Struktur wird eine Hushtabelle mit der Interpretation bis hin zu den Blättern weitergereicht. Die Blätter werden anschließend mit den Werten der Hushtabelle belegt und ausgewertet. Die Knoten des Baumes sind Rechenvorschriften die festlegen wie die Belegung ausgewertet wird. Das Durchlaufen der Struktur erfolgt rekursiv.

Beispiel: (a|b) & (c -> (!d))

Wird dieser Ausdruck mit einem Parser zerlegt entsteht folgender Sysntaxbaum:

Die runden Elemente AND, OR, IMPLIES und Not sind Knoten des Baumes. Die Rechtecke stehen für die Belegung der atomaren Ausdrücke a, b, c und d. Mit dem Einsatz des Visitor Patterns wollen wir überprüfen ob die oben aufgeführte Belegung zu einer wahren Aussage führt.
Falls Sie erfahren möchten wie man mit JavaCC und JJTree Parser für unerschiedliche Anwendungen Parser implemetiert dann schauen sie sich auf der JavaCC-Homepage um. Hier erfahren sie alles über Parserimplementierung mit Hilfe der Tools JavaCC und JJTree.

Ein JavaCC Eclipse Plugin und eine Anleitung wie man es mit Eclipse verwendet finden Sie hier.